1. Field of the Invention
The invention is directed to a method and apparatus for controlling error correction within a data transmission controller for reading data from a moving peripheral storage device, particularly a disk storage device, of a data processing system.
Peripheral storages such as, for example, disk storage devices in a data processing system are usually controlled be data transmission controllers which control the connection of the disk storage device to the input/output channels of the data processing system. In order to facilitate the cooperation between the input/output channels and the various peripheral stores, and to design this in more adaptable fashion, various interfaces have been created on the route between the input/output channels and the peripheral stores. These interfaces have been partially elevated to the status of standards--see, for example, "MINI-MICRO SYSTEMS", Feb., 1985, pages 135 through 144 and "Computer Design", Jan. 15, 1986, pages 57 through 70.
On the other hand, the high packing density of modern peripheral stores requires an adequate protection of the data with error-correcting codes, such as parity codes, CRC codes and the like, in order to assure an adequate data transmission performance. The data are thereby usually divided into blocks or data fields that can differ in length, and every block is supplemented during writing by protection characters corresponding to the selected error correction codes such as parity codes, CRC codes, and the like. When reading the blocks, the protection characters are then formed independently again, and are compared to the entrained supplemental protection characters. When the protection characters do not agree because the data have been falsified, an error syndrome is identified from which the correction quantities for correcting the error-infested data can be calculated. Dependent on the scope of the maximum data to be protected, and dependent on the scope of the correctability of errors, every error causes a more or less great time delay until faulty data are corrected and can be forwarded to the data processing system. The protection of the data to be stored and their monitoring and correction during reading is likewise a job of the controller.
Known solutions employ two data buffers whose capacity corresponds to a standard block length, such as a single cluster unit comprising one or more disk segments. Whereas reading is carried out in one data buffer, the data in the other data buffer are forwarded to the higher-ranking data processing system. When an error is identified, the reading of a further block is suppressed and the faulty block is first corrected--see, for example, "Electronic Design", Oct. 3, 1985, pages 105 through 111.
Considerable delays result, after every block or segment which is recognized as faulty, since the correction generally requires significantly more time than is required for reaching the start of the following block on the disk storage device. With every adulterated block, the duration of one revolution of the storage disk in order to be able to read the following block, then represents lost time. These lost times are all the more significant the higher the number of blocks to be read with a single read instruction.
These lost times could be largely avoided if two separate protection and correction devices were provided in addition to the two data buffers and if the time conditions dependent on one another were matched better to one another. This, however, first means an additional expense and complexity and, because of the time conditions to be observed, means a restriction in the design of the apparatus that cannot always be accepted.